Passed
Push — develop ( a05353...e2fd1b )
by Endre
04:09
created

Container.setupDefaults   A

Complexity

Conditions 1

Size

Total Lines 3
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 1
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 3
dl 0
loc 3
ccs 1
cts 1
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
import ListenerAdapter from '../Observer/ListenerAdapter';
2
import Observer from '../Observer/Observer';
3
import DataStorage from '../Storage/DataStorage';
4
import AjaxLoader from './Loader/Ajax';
5
import Manager from './Manager';
6
import ActiveTranslatorAdapter from './Manager/ActiveTranslatorAdapter';
7
import Translator from './Translator';
8
import TranslatorFactory from './Translator/Factory';
9
10
class Container {
11
  translatorFactory: TranslatorFactory;
12
  loader: AjaxLoader;
13
  manager: Manager;
14
  adapter: ListenerAdapter<string>;
15
  observer: Observer<string>;
16
  activeTranslator: Observer<Translator>;
17
  activeTranslatorAdapter: ActiveTranslatorAdapter;
18
  storage: DataStorage;
19
20
  constructor() {
21 1
    this.storage = new DataStorage('language', window.localStorage);
22
23 1
    this.translatorFactory = new TranslatorFactory();
24 1
    this.loader = new AjaxLoader();
25 1
    this.manager = new Manager(this.loader, this.translatorFactory);
26
27 1
    this.adapter = new ListenerAdapter<string>();
28 1
    this.activeTranslator = new Observer<Translator>(
29
      new Translator({}),
30
      {onChange: (oldValue: Translator, newValue: Translator): void => {}}
31
    );
32 1
    this.activeTranslatorAdapter = new ActiveTranslatorAdapter(this.adapter, this.manager, this.activeTranslator);
33 1
    this.observer =
34
      new Observer<string>('', this.storage.attach<string>('languageSetup', this.activeTranslatorAdapter));
35
36 1
    this.setupDefaults();
37
  }
38
39
  protected setupDefaults(): void {
40 1
    this.observer.value = this.storage.loadData<string>('languageSetup', 'de-de');
41
  }
42
}
43
44
export default new Container();